public class OuterClass {
    private int outerNum = 100; // 外部类私有成员

    public void outerMethod(String msg) { // 方法参数（有效final）
        final int localNum = 200; // 局部变量（显式final）

        // 定义局部内部类（仅在outerMethod中可见）
        class LocalInner {
            private int innerNum = 300; // 内部类成员变量

            // 内部类方法
            public void printInfo() {
                // 访问外部类成员
                System.out.println("外部类变量：" + outerNum);
                // 访问方法参数（有效final）
                System.out.println("方法参数：" + msg);
                // 访问局部变量（显式final）
                System.out.println("局部变量：" + localNum);
                // 访问内部类自身成员
                System.out.println("内部类变量：" + innerNum);
            }
        }

        // 在方法内创建局部内部类对象并使用
        LocalInner inner = new LocalInner();
        inner.printInfo();
    }

    public static void main(String[] args) {
        OuterClass outer = new OuterClass();
        outer.outerMethod("Hello");
        // 输出：
        // 外部类变量：100
        // 方法参数：Hello
        // 局部变量：200
        // 内部类变量：300
    }
}